package com.lyf.scm.admin.api.dto;

import com.lyf.scm.common.model.BaseSearchDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 直营预测计划_目标与销售计划差异DTO
 *
 * @author wangchlei
 * @date 2020/08/05
 */
@Data
@ApiModel("直营预测计划_目标与销售计划差异DTO")
public class SalePlanDirectlyDifferinDTO extends BaseSearchDTO {
    @ApiModelProperty("主键id")
    private Long id;

    @ApiModelProperty("直营预测计划单号")
    private String salesPlanDirectlyNo;

    @ApiModelProperty("实际销售（金额）")
    private BigDecimal salesActualAmount;

    @ApiModelProperty("实际销售（数量）")
    private BigDecimal salesActualQty;

    @ApiModelProperty("销售预测（金额）")
    private BigDecimal salesForecastAmount;

    @ApiModelProperty("销售计划（金额）")
    private BigDecimal salesPlanAmount;

    @ApiModelProperty("销售预测（数量）")
    private BigDecimal salesForecastQty;

    @ApiModelProperty("销售计划（数量）")
    private BigDecimal salesPlanQty;

    @ApiModelProperty("实际收货量（数量）")
    private BigDecimal actualReceivedQty;

    @ApiModelProperty("计划开始日期")
    private Date planStartDate;

    @ApiModelProperty("计划结束日期")
    private Date planEndDate;

    @ApiModelProperty("是否需要GMV参数")
    private Boolean validGmv;

    @ApiModelProperty("GMV计划开始日期")
    private Date gmvStartDate;

    @ApiModelProperty("GMV计划结束日期")
    private Date gmvEndDate;

    @ApiModelProperty("GMV计划查询月所对应天数")
    private Map<Date, BigDecimal> gmvMonthDays;

    @ApiModelProperty("每一周所在第一个月的天数")
    private Map<Date, BigDecimal> weekMonthDays;

    @ApiModelProperty("每一周所在第二个月的天数")
    private Map<Date, BigDecimal> subWeekMonthDays;

    @ApiModelProperty("每一周所在第一个月的日期")
    private Map<Date, Date> weekMonthDate;

    @ApiModelProperty("每一周所在第二个月的日期")
    private Map<Date, Date> subWeekMonthDate;

    @ApiModelProperty("小品类code集合")
    private List<String> terCategoryCodes;

    @ApiModelProperty("skuCode集合")
    private List<String> skuCodes;

    @ApiModelProperty("小品类code——大品类 或 小品类code——中品类code")
    private Map<Long, String> terCodeMapping;

    @ApiModelProperty("仓库code集合")
    private List<String> warehouseCodes;

    @ApiModelProperty("仓库对应的区域编码")
    private Map<String,String> warehouseArea;
}
